Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

707
Vistas
¿Qué hace el atributo [ApiController]?

He notado que es lo mismo si se usa este atributo o no. ¿Me equivoco?

Como ejemplo:

 [Route("[controller]")] [ApiController] public class DataTablesController: ControllerBase { [HttpGet] public IActionResult Test() { return Ok("test"); } }

No sucedió nada cuando eliminé el atributo [ApiController] .

En la documentación de Microsoft, encontré esta explicación:

Indica que un tipo y todos los tipos derivados se utilizan para servir respuestas de la API HTTP.
Los controladores decorados con este atributo están configurados con funciones y comportamientos destinados a mejorar la experiencia del desarrollador para crear API.
Cuando se decoran en un ensamblaje, todos los controladores del ensamblaje se tratarán como controladores con comportamiento de API.

¿Cuál es ese comportamiento de la API? ¿Y por qué debemos usarlo?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El atributo [ApiController] habilita algunas funciones, incluido el requisito de enrutamiento de atributos, la validación automática del modelo y la inferencia de parámetros de origen vinculante.

Esto se tomó directamente de los documentos de MS Crear API web con ASP.NET Core :

El atributo [ApiController] se puede aplicar a una clase de controlador para habilitar los siguientes comportamientos obstinados específicos de la API:

  • Requisito de enrutamiento de atributos
  • Respuestas HTTP 400 automáticas
  • Inferencia de parámetros de origen de enlace
  • Inferencia de solicitud de datos de formulario/multiparte
  • Detalles del problema para códigos de estado de error

La función Detalles del problema para los códigos de estado de error requiere una versión de compatibilidad de 2.2 o posterior. Las otras características requieren una versión de compatibilidad de 2.1 o posterior.

Algunos detalles sobre las características a continuación:

Enrutamiento de atributos

Se requerirá el enrutamiento de atributos si usa [ApiController] , por ejemplo:

 [ApiController] [Route("[controller]")] public class DataTablesController: ControllerBase

Las acciones son inaccesibles a través de rutas convencionales definidas por UseEndpoints, UseMvc o UseMvcWithDefaultRoute en Startup.Configure

Respuestas automáticas Http 400

Agrega un filtro de acción para devolver una respuesta 400 si ModelState falla en la validación. Ya no necesita escribir esto en sus acciones, se manejará automáticamente:

 if (!ModelState.IsValid) { return BadRequest(ModelState); }

Inferencia de parámetros de origen de enlace

Nuevamente, de los documentos vinculados:

Un atributo de origen de enlace define la ubicación en la que se encuentra el valor de un parámetro de acción. Existen los siguientes atributos de origen de enlace: [FromBody] , [FromForm] , [FromHeader] , [FromQuery] , [FromRoute] , [FromServices]

Inferencia de solicitud de datos de formulario/multiparte

El atributo [ApiController] aplica una regla de inferencia cuando un parámetro de acción se anota con el atributo [FromForm]. Se deduce el tipo de contenido de solicitud de datos de formulario/multiparte.

Un ejemplo que utiliza la inferencia de parámetros de origen vinculante:

 [HttpPost] public IActionResult Test([FromForm] Model model) { return Ok("test"); }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda